iT邦幫忙

2022 iThome 鐵人賽

DAY 30
1
自我挑戰組

C語言與C++語言自學系列 第 30

C語言與C++語言自學第三十天

  • 分享至 

  • xImage
  •  

C語言全域變數

#include <stdio.h>
int i=0;
void f(){
    i++;
};

int main()
{
    f();
    printf("%d\n",i);
    return 0;
}

上面的程式碼中,程式流程的執行在全域變數中到呼叫函示main,i是在哪時候被執行的呢,程式呼叫main開始執行,其實在編譯時就初始化好了,也就是i在呼叫main函示之前就初始化好了,我們有辦法在main函示之前初始化f()這樣會編譯失敗,我們不能用函示呼叫去使用全域變數,所以全域變數跟區域變數是相當不同

C語言全域變數與靜態區域變數

#include <stdio.h>
int count(void){
    int k=0;
    k++;
    return k;
}
int main(){
    for(int i=1;i<=5;i++){
        printf("%d\n", count());
    }
    return 0;
}

上面的程式碼中,我們在程式for迴圈裡面執行五次每次都呼叫一個count(),count()的參數void也就表示函示沒有參數,每次呼叫時都會產生一個區域變數k,把k假設成0,k++,k回傳0,每次呼叫都是獨立的一次

C++語言vector

vector 常用功能以下為 std::vector 內常用的成員函式push_back:把元素加到尾巴,必要時會進行記憶體配置pop_back:移除尾巴的元素insert:插入元素erase:移除某個位置元素, 也可以移除某一段範圍的元素clear:清空容器裡所有元素size:回傳目前長度empty:回傳是否為空[i]:隨機存取索引值為i的元素,跟傳統陣列一樣索引值從 0 開始at(i):隨機存取索引值為i的元素,跟上面 operator[] 差異是 at(i) 會作邊界檢查,存取越界會拋出一個例外reserve():預先配置大小

#include <vector>
using namespace std;

int main() {
    vector<int> v;
    return 0;
}

上面的程式碼是將vector初始化,這樣是宣告一個int整數類型的vector,裡面沒有任何元素(空),size為0表示vector容器中沒有任何元素,capacity也是0

這邊要謝謝IT邦幫忙有這個鐵人競賽讓我這30天不間斷的複習與預習C語言與C++語言,這30天下來我再去刷題,能力有顯著提升,謝謝我也謝謝IT邦幫忙來達成這30天的奇幻程式鐵人之旅


上一篇
C語言與C++語言自學第二十九天
系列文
C語言與C++語言自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言